##############################################################################
# CMake
##############################################################################

cmake_minimum_required(VERSION 2.8.0)
project(weeding_robot_gui)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#添加c++11的支持
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
add_compile_options(-std=c++11)
##############################################################################
# Catkin
##############################################################################
set(CMAKE_PREFIX_PATH  "/home/chen/Project/Weeding_Project/Weeding-Project/catkin_ws_Weed-Detection/install")
# qt_build provides the qt cmake glue, roscpp the comms for a default talker
find_package(OpenCV 4  REQUIRED)
find_package(catkin REQUIRED COMPONENTS qt_build roscpp
    roscpp sensor_msgs cv_bridge image_transport weed_segment
)
find_package(Boost REQUIRED COMPONENTS system)
find_package(Qt5 COMPONENTS SerialPort Core Widgets Multimedia Sql REQUIRED)
#find_package(Qt5   REQUIRED)
set(QT_LIBRARIES Qt5::Widgets Qt5::Multimedia)
include_directories(${catkin_INCLUDE_DIRS})
# Use this to define what the package will export (e.g. libs, headers).
# Since the default here is to produce only a binary, we don't worry about
# exporting anything. 
catkin_package()

##############################################################################
# Qt Environment
##############################################################################

# this comes from qt_build's qt-ros.cmake which is automatically 
# included via the dependency call in package.xml
#rosbuild_prepare_qt5(QtCore QtGui) # Add the appropriate components to the component list here

##############################################################################
# Sections
##############################################################################

file(GLOB QT_FORMS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui)
file(GLOB QT_RESOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resources/*.qrc)
file(GLOB_RECURSE QT_MOC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/weeding_robot_gui/*.hpp include/weeding_robot_gui/*.h)

QT5_ADD_RESOURCES(QT_RESOURCES_CPP ${QT_RESOURCES})
QT5_WRAP_UI(QT_FORMS_HPP ${QT_FORMS})
#QT4_WRAP_CPP(sources ${moc-sources} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
QT5_WRAP_CPP(QT_MOC_HPP ${QT_MOC})

##############################################################################
# Sources
##############################################################################

file(GLOB_RECURSE QT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)

##############################################################################
# Binaries
##############################################################################

add_executable(weeding_robot_gui ${QT_SOURCES} ${QT_RESOURCES_CPP} ${QT_FORMS_HPP} ${QT_MOC_HPP})
target_link_libraries(weeding_robot_gui ${QT_LIBRARIES} ${catkin_LIBRARIES}  Qt5::SerialPort Qt5::Core ${OpenCV_LIBRARIES})
install(TARGETS weeding_robot_gui RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
